/*******************************************************************************
 * file  : key
 * creat : apleilx
 * data  : 2017/03/02
 *******************************************************************************/
#include "os_obj.h"
#include "iohandle.h"
#include "common.h"
#include "pincfg.h"
#include "sys_task.h"
#include "gui_main.h"

/*******************************************************************************
 * @brief FUN.
 *******************************************************************************/

/*******************************************************************************
 * @brief 操作声明.
 *******************************************************************************/
void key_exe_none(void);
void key_down_any(void);
void key_release_any(void);
void key_keep_any(void);
void key_idle(void);

void key_set_press(void);
void key_set_release(void);
void key_set_keep(void);

void key_shift_press(void);
void key_shift_release(void);
void key_shift_keep(void);

void key_down_press(void);
void key_down_release(void);
void key_down_keep(void);

void key_up_press(void);
void key_up_release(void);
void key_up_keep(void);

void key_set_shift_press(void);
void key_set_shift_release(void);
void key_set_shift_keep(void);

/*******************************************************************************
 * @brief   操作链接.
 *******************************************************************************/
const key_opt_type key_list[] = {
	{KEY_VAL_SET, key_set_press, key_set_keep, key_set_release},
	{KEY_VAL_SHIFT, key_shift_press, key_shift_keep, key_shift_release},
	{KEY_VAL_DN, key_down_press, key_down_keep, key_down_release},
	{KEY_VAL_UP, key_up_press, key_up_keep, key_up_release},
	{KEY_VAL_SET | KEY_VAL_SHIFT, key_set_shift_press, key_set_shift_keep, key_set_shift_release},
	{0} // 列表结束表示符-键值为0
};

/*******************************************************************************
 * @brief   按键接口.
 *******************************************************************************/
const key_api_type key_api = {
	key_down_any,
	key_keep_any,
	key_list,
	key_release_any,
	key_idle};

/*******************************************************************************
 * @brief   按键.
 *******************************************************************************/
key_type key;

/*******************************************************************************
 * @brief   task_key.
 * @param   thread_input 参数
 * @return  none
 *******************************************************************************/
void task_key(void *thread_input)
{
}

/*******************************************************************************
 * @brief   空闲.
 *******************************************************************************/
void key_idle(void)
{
}

/*******************************************************************************
 * @brief   按键公共处理.
 *******************************************************************************/
void key_exe_none(void)
{
}

void key_down_any(void)
{
}

void key_release_any(void)
{
}

void key_keep_any(void)
{
}

/*******************************************************************************
 * @brief   set.
 *******************************************************************************/
void key_set_press(void)
{
	dbg_puts("user key press \n");
	gui_st.page_reg++;
}

void key_set_release(void)
{
	dbg_puts("user key release \n");
}

void key_set_keep(void)
{
}

/*******************************************************************************
 * @brief   shift.
 *******************************************************************************/
void key_shift_press(void)
{
}

void key_shift_release(void)
{
}

void key_shift_keep(void)
{
}

/*******************************************************************************
 * @brief   down.
 *******************************************************************************/
void key_down_press(void)
{
}

void key_down_release(void)
{
}

void key_down_keep(void)
{
}

/*******************************************************************************
 * @brief   up.
 *******************************************************************************/
void key_up_press(void)
{
}

void key_up_release(void)
{
}

void key_up_keep(void)
{
}

/*******************************************************************************
 * @brief   set + shift 组合.
 *******************************************************************************/
void key_set_shift_press(void)
{
}

void key_set_shift_release(void)
{
}

void key_set_shift_keep(void)
{
}
